\documentclass{beamer}

\mode<presentation>
{
	\usetheme{Warsaw}
	\setbeamercovered{transparent}
}

\usepackage[english]{babel}
\usepackage{ucs}
\usepackage[utf8x]{inputenc}
\usepackage{times}
\usepackage{listings}
\usepackage[T1]{fontenc}

\title{QMediaLinker}
\subtitle{A Qt-based application to manage your mediatheque} 
\author{Martial Calingarayar and Yannis Mazzer}

\institute{\im{./Graphics/ucbl}{2} \hbox{    } \im{./Graphics/qt}{3.5}}
\date{\today}

\begin{document}
\newcommand{\transp}[2]{%
\begin{frame}{#1}{}{#2}%
\end{frame}}
\newcommand{\ra}{$\Rightarrow$}
\newcommand{\im}[2]{\pgfdeclareimage[width = #2 cm]{#1}{#1}
\pgfuseimage{#1}}

\transp{}{\titlepage}

\transp{Interface}{
% Image du résultat, explication du principe de l'application 
\begin{centering}
\im{./Graphics/qmedialinker}{10.5}
\end{centering}
}

\transp{Functionnalities}{
% liste des fonctionnalités : celles qui marchent et celles qui marchent moins bien
\begin{itemize}
\item View informations related to a media
\begin{itemize}
\item in the same table
\item in the linked tables (Tracks, Cast, Languages)
\end{itemize}
\item Add a media in the database
\item Remove a media from the database 
\item Edit a media in the database 
\item Use of a configuration file to store database informations
\end{itemize}}

\transp{Insertion in a Skiplist}{
\begin{enumerate}
\item We need a table of pointers to build a path to the searched cell.
\item We check if the element isn't already contained in the skiplist else we 
do nothing.
\item If the element isn't contained in the skiplist we insert it :
\begin{itemize}
\item we check that the size of the new cell

does not exceed the size of the skiplist.
\item We retrieve the list of pointers that we have created at the 

beginning and we insert them in the table on the new cell.
\end{itemize}
\end{enumerate}
}

\transp{The Model/View with Qt}{
\begin{itemize}
\item An item-based View need an index and a model
\item When editing in the View, changes are instantly applied to the model.
\item When submitting changes to the database, the model is resetted \dots 
\item \dots and the indexes are also resetted.
\end{itemize}
\ra Views are not pointing to the good row in the model
}

\transp{Deletion in a Skiplist}{
\begin{enumerate}
\item We need :
\begin{itemize}
\item an iterator which is initialised as a pointer to the first Cell.
\item a list of pointers.
\item a save of the list of pointers of the Cell we're goin to delete.
\end{itemize} 
\item First we look for the element to delete in the skiplist.
\item During the search we store pointers to nodes that points to the one we want to delete.
\item Then replace the pointers to the toDelete node in those latters by the pointers of the toDelete node.
\item After that we check if there are NULL pointers in Cell tables of pointers and we shrink the size of the SkipList.
\item Finally we delete the node.
\end{enumerate}
}

\transp{To Conclude \dots}{
\begin{itemize}
\item Building a simple application with a good toolkit is easy but good knowledges of the toolkit are necessaary.
\item The use of database doesn't avoid the use of advanced data structures.
\item It is important to think and talk about the design before implementing (MVC, \dots)
\item Qt is cool !!!
\end{itemize}}

\end{document}
